博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django+Bootstrap+Mysql 搭建个人博客(二)
阅读量:5903 次
发布时间:2019-06-19

本文共 4322 字,大约阅读时间需要 14 分钟。

2.1.博客首页设计

(1)settings.py

MEDIA_ROOT = os.path.join(BASE_DIR,'media').replace("//","/")MEDIA_URL = '/media/'

(2)website/urls

添加图片的url

from django.conf.urls import url,includefrom django.contrib import adminfrom django.conf import settingsfrom django.conf.urls.static import staticurlpatterns = [    url(r'^admin/', admin.site.urls),    url(r'^blog/',include('blog.urls') ),] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT )        #添加图片的url

(3)blog/models.py

添加两个方法

class Entry(models.Model):    .    .    .     def get_absolute_url(self):        #获取当前博客详情页的url        return reverse("blog:blog_detail",kwargs={
"blog_id":self.id}) #app名字,详情页url的别名,参数是当前博客的id def increase_visiting(self): #访问量加1 self.visiting += 1 self.save(update_fields=['visiting']) #只保存某个字段

(4)views.py

from django.shortcuts import renderfrom . import modelsdef index(request):    entries = models.Entry.objects.all()    return render(request,'blog/index.html',locals())def detail(request,blog_id):    entry = models.Entry.objects.get(id=blog_id)    entry.increase_visiting()    return render(request,'blog/detail.html',locals())

(5)index.py

{% extends 'blog/base.html' %}{% block title %}博客首页{% endblock %}{% block content %}    
{% for entry in entries %}

{
{ entry.title }}

{% if entry.img %}
{% endif %} {% if entry.abstract %}

{

{ entry.abstract }}

{% else %}

{

{ entry.body|truncatechars:180 }}

{% endif %}

作者:{

{ entry.author }}     发布时间:{
{ entry.created_time }}
    阅读数:{
{ entry.visiting }}

{% endfor %}
{% endblock %}

(6)detail.html

{% extends 'blog/base.html' %}{% block title %}博客详情页{% endblock %}{% block content %}    博客{
{ blog_id }}的详情页{% endblock %}

 

2.2.博客详情页面

detail.html

{% extends 'blog/base.html' %}{% block title %}博客详情页{% endblock %}{% block content %}    

{
{ entry.title }}

{

{ entry.author }}     {
{ entry.created_time|date:'Y年m月d日' }}     分类: {% for category in entry.category.all %}   {
{ category.name }}
{% endfor %}     标签: {% for tag in entry.tags.all %}   {
{ tag.name }}
{% endfor %}     浏览量:   {
{ entry.visiting }} {% if entry.img %} {% endif %}


{

{ entry.body }}

{% endblock %}

2.3.Markdown排版、语法高亮和生成目录

(1)安装模块

pip install markdownpip install pygments

(2)views.py

import markdown,pygmentsdef detail(request,blog_id):    entry = models.Entry.objects.get(id=blog_id)    md = markdown.Markdown(extensions=[        'markdown.extensions.extra',        'markdown.extensions.codehilite',        'markdown.extensions.toc',    ])    entry.body = md.convert(entry.body)    entry.toc = md.toc    entry.increase_visiting()    return render(request,'blog/detail.html',locals())

(3)detail.html

把github.css放到blog/css里面,detail.html引用样式

{% extends 'blog/base.html' %}{% load staticfiles %}{% block title %}博客详情页{% endblock %}{% block css %}    
{% endblock %}

标签和正文都加salf

 

 (4)后台添加博客

Markdown语法测试篇

## 1.python语言介绍   编程语言主要从以下几个角度进行分类:编译型,静态型,动态性,强类型定义语言和弱类型定义语言 - 编译型:有一个负责翻译的程序来对我们的源代码进行转换,生成对应的可执行代码,这个过程就是编译(Compile),而负责编译的程序就被称为编译器(Compiler) - 通常我们所说的动态语言,静态语言是指动态类型语言和静态类型语言 ## 2.python的优缺点 - 优点:简单、开发效率高、高级语言、可移植性、可扩展性、可嵌入性 - 缺点:速度慢,但是相对的、代码不能加密、线程不能利用多CPU问题## 3.高阶函数```pythondef func():    print('in the func')    return foo()def foo():    print('in the foo()')    return 666res = func()print(res)```

前端显示效果:

 

转载地址:http://fmkpx.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
老李分享:qtp自动化测试框架赏析-关键字自动化测试框架 2
查看>>
忙里偷闲 -- 工作随笔
查看>>
springboot报编译失败 Compilation failure
查看>>
mysqld error(一)
查看>>
Javascript延时函数
查看>>
UML类图关系大全
查看>>
Ant编译Hadoop 1.0.3的eclipse-plugin插件包
查看>>
tensorflow开发环境搭建
查看>>
JDBCRealm Http Digest
查看>>
CentOS 7 网络配置
查看>>
matplotlib 交互式导航
查看>>
eclipse的插件未安装成功
查看>>
UnicodeEncodeError: 'ascii' codec can't encode
查看>>
jvm在什么时候进行进行垃圾回收,在什么时候进行扩大内存
查看>>
【转载】强大的命令行工具wmic
查看>>
如何用30分钟快速优化家中Wi-Fi?阿里工程师有绝招
查看>>
云越发展,锁定问题就会越严重?
查看>>
用户访问网页的流程原理
查看>>
write back vs write through
查看>>